Data storage systems are arrangements of hardware and software that include storage processors coupled to arrays of non-volatile storage devices, such as magnetic disk drives, electronic flash drives, and/or optical drives, for example. The storage processors service storage requests, arriving from host machines, which specify files or other data elements to be written, read, created, deleted, etc. Software running on the storage processors manages incoming storage requests and performs various data processing tasks to organize and secure the data elements stored on the non-volatile storage devices. Filesystems are generally built upon volumes. In some data storage systems, slices of data storage may be provisioned to a volume that supports a filesystem on an as-needed basis. As is known, slices are uniformly-sized storage extents, which may be 256 megabytes (MB) or 1 gigabyte (GB), for example. When a filesystem requires additional storage space to accommodate incoming writes, a data storage system may provide the additional space by provisioning another slice to the volume that backs the filesystem.
It sometimes happens that, after space is provisioned to a volume that supports a filesystem, contents may be deleted, reducing the actual space used by the filesystem. This may result in more storage being provisioned to the underlying volume than is necessary. Thus, a filesystem shrink process may attempt to clear one slice allocated to the volume by moving all blocks of data from that slice to other slices that have unused space. In addition, space within a single slice may become fragmented after use. Thus, a filesystem consolidation process may attempt to reorganize the blocks within that slice to create large contiguous extents of free space. In order to avoid having filesystem shrink processes and filesystem consolidation processes (together referred to as filesystem reorganization processes) proliferate and take resources away from fulfillment of data storage requests, some data storage systems institute techniques to limit the number of running filesystem reorganization processes.